@mixin baseTheme {
  --font-sans: "Poppins", "sans-serif";
  --font-mono: "Roboto Mono", "monospace";
  --font-icon: "Material Icons";
}

@mixin darkTheme {
  // Background color
  --primary-color: rgba(32, 33, 36, 1);
  // Light Background color
  --primary-light-color: rgba(255, 255, 255, 0.04);
  // Dark Background color
  --primary-dark-color: rgba(0, 0, 0, 0.2);
  // Text color
  --secondary-color: rgba(255, 255, 255, 0.9);
  // Light Text color
  --secondary-light-color: rgba(255, 255, 255, 0.5);
  // Border color
  --divider-color: rgba(255, 255, 255, 0.05);
  // Error color
  --error-color: rgba(255, 255, 255, 0.05);
  // Tooltip color
  --tooltip-color: rgba(48, 48, 48, 1);
  // Editor theme
  --editor-theme: "twilight";
}

@mixin lightTheme {
  // Background color
  --primary-color: rgba(255, 255, 255, 1);
  // Light Background color
  --primary-light-color: rgba(0, 0, 0, 0.05);
  // Dark Background color
  --primary-dark-color: rgba(0, 0, 0, 0.02);
  // Text color
  --secondary-color: rgba(0, 0, 0, 0.9);
  // Light Text color
  --secondary-light-color: rgba(0, 0, 0, 0.6);
  // Border color
  --divider-color: rgba(0, 0, 0, 0.1);
  // Error color
  --error-color: rgba(0, 0, 0, 0.1);
  // Tooltip color
  --tooltip-color: rgba(255, 255, 255, 1);
  // Editor theme
  --editor-theme: "iplastic";
}

@mixin blackTheme {
  // Background color
  --primary-color: rgba(0, 0, 0, 1);
  // Light Background color
  --primary-light-color: rgba(255, 255, 255, 0.02);
  // Dark Background color
  --primary-dark-color: rgba(255, 255, 255, 0.07);
  // Text color
  --secondary-color: rgba(255, 255, 255, 0.9);
  // Light Text color
  --secondary-light-color: rgba(255, 255, 255, 0.5);
  // Border color
  --divider-color: rgba(255, 255, 255, 0.11);
  // Error color
  --error-color: rgba(255, 255, 255, 0.05);
  // Tooltip color
  --tooltip-color: rgba(32, 32, 32, 1);
  // Editor theme
  --editor-theme: "vibrant_ink";
}

@mixin blueTheme {
  // Accent color
  --accent-color: theme("colors.blue.400");
}

@mixin greenTheme {
  // Accent color
  --accent-color: theme("colors.green.400");
}

@mixin tealTheme {
  // Accent color
  --accent-color: theme("colors.teal.400");
}

@mixin indigoTheme {
  // Accent color
  --accent-color: theme("colors.indigo.400");
}

@mixin purpleTheme {
  // Accent color
  --accent-color: theme("colors.purple.400");
}

@mixin orangeTheme {
  // Accent color
  --accent-color: theme("colors.orange.400");
}

@mixin pinkTheme {
  // Accent color
  --accent-color: theme("colors.pink.400");
}

@mixin redTheme {
  // Accent color
  --accent-color: theme("colors.red.400");
}

@mixin yellowTheme {
  // Accent color
  --accent-color: theme("colors.yellow.400");
}

:root {
  @include baseTheme;
  @include darkTheme;
  @include greenTheme;
}

:root.light {
  @include lightTheme;
}

:root.dark {
  @include darkTheme;
}

:root.black {
  @include blackTheme;
}

:root[data-accent="blue"] {
  @include blueTheme;
}
:root[data-accent="green"] {
  @include greenTheme;
}
:root[data-accent="teal"] {
  @include tealTheme;
}
:root[data-accent="indigo"] {
  @include indigoTheme;
}
:root[data-accent="purple"] {
  @include purpleTheme;
}
:root[data-accent="orange"] {
  @include orangeTheme;
}
:root[data-accent="pink"] {
  @include pinkTheme;
}
:root[data-accent="red"] {
  @include redTheme;
}
:root[data-accent="yellow"] {
  @include yellowTheme;
}
